package com.turing.usdtpay.utils;

import android.app.Activity;
import android.text.TextUtils;

import java.math.RoundingMode;
import java.text.NumberFormat;

/**
 * @作者：JAY
 * @创建时间：2019/10/23 10:54
 * @描述：
 **/
public class FormatUtils {
    //数字
    public static final String REG_NUMBER = ".*\\d+.*";
    //小写字母
    public static final String REG_UPPERCASE = ".*[A-Z]+.*";
    //大写字母
    public static final String REG_LOWERCASE = ".*[a-z]+.*";
    //特殊符号
    public static final String REG_SYMBOL = ".*[~!@#$%^&*()_+|<>,.?/:;'\\[\\]{}\"]+.*";

    //    /**
//     * 验证手机格式
//     */
    public static boolean isMobile(String number) {
    /*
    移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
    联通：130、131、132、152、155、156、185、186
    电信：133、153、180、189、（1349卫通）
    总结起来就是第一位必定为1，第二位必定为3或5或8，其他位置的可以为0-9
    */
        //"[1]"代表第1位为数字1，"[358]"代表第二位可以为3、5、8中的一个，"\\d{9}"代表后面是可以是0～9的数字，有9位。
        String num = "[1][358]\\d{9}";
        if (TextUtils.isEmpty(number)) {
            return false;
        } else {
            //matches():字符串是否在给定的正则表达式匹配
            return number.matches(num);
        }
    }


    //邮箱验证
    public static boolean isEmail(String strEmail) {
        String strPattern = "^[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";
        if (TextUtils.isEmpty(strPattern)) {
            return false;
        } else {
            return strEmail.matches(strPattern);
        }
    }


    /**
     * 检查密码是否符合格式
     *
     * @param password
     * @return
     */
    public static boolean checkPasswordRule(String password) {
        //密码为空或者长度小于8位则返回false
        if (password == null || password.length() < 6 || password.length() > 16) return false;
        int i = 0;
        if (password.matches(REG_NUMBER)) i++;
        if (password.matches(REG_LOWERCASE)) i++;
        if (password.matches(REG_UPPERCASE)) i++;
//        if (password.matches(REG_SYMBOL)) i++;

        if (i < 3) {
            return false;
        }
        return true;
    }

    public static String hidePhoneNumber(String phone) {
        LogUtils.d("phone -->" + phone);
        String start = phone.substring(0, 3);
        String end = phone.substring(7, 11);
        char[] chars = phone.toCharArray();
        if (chars.length == 11) {
            String new_phone = start + "****" + end;
            LogUtils.d("phone -->" + new_phone);
            return new_phone;
        }
        return phone;
    }

    public static String NoumberFromat8(double number) {
//        NumberFormat nf = NumberFormat.getNumberInstance();
//        // 保留8位小数
//        nf.setMaximumFractionDigits(8);
//        // 如果不需要四舍五入，可以使用RoundingMode.DOWN
//        nf.setRoundingMode(RoundingMode.UP);
//        return nf.format(number);
        return String.format("%.8f", number);
    }

    public static String NoumberFromat2(double number) {
//        NumberFormat nf = NumberFormat.getNumberInstance();
//        // 保留8位小数
//        nf.setMaximumFractionDigits(8);
//        // 如果不需要四舍五入，可以使用RoundingMode.DOWN
//        nf.setRoundingMode(RoundingMode.UP);
//        return nf.format(number);
        return String.format("%.2f", number);
    }
}
